f0ed98335c2230176c5694c574cac0c86c8ff91a,platform/lang-impl/src/com/intellij/codeInsight/editorActions/IndentingBackspaceHandler.java,IndentingBackspaceHandler,charDeleted,#char#PsiFile#Editor#,43
Before Change
int offset = CharArrayUtil.shiftForward(document.getCharsSequence(), editor.getCaretModel().getOffset(), " \t");
int beforeWhitespaceOffset = CharArrayUtil.shiftBackward(document.getCharsSequence(), offset - 1, " \t") + 1;
LogicalPosition logicalPosition = editor.offsetToLogicalPosition(offset);
int lineStartOffset = document.getLineStartOffset(logicalPosition.line);
if (lineStartOffset < beforeWhitespaceOffset) {
if (c == '\n' && beforeWhitespaceOffset < offset) {
After Change
int caretOffset = editor.getCaretModel().getOffset();
int offset = CharArrayUtil.shiftForward(document.getCharsSequence(), caretOffset, " \t");
int beforeWhitespaceOffset = CharArrayUtil.shiftBackward(document.getCharsSequence(), offset - 1, " \t") + 1;
LogicalPosition logicalPosition = caretOffset < offset ? editor.offsetToLogicalPosition(offset) : editor.getCaretModel().getLogicalPosition();
int lineStartOffset = document.getLineStartOffset(logicalPosition.line);
if (lineStartOffset < beforeWhitespaceOffset) {
if (caretWasAtLineStart && beforeWhitespaceOffset < offset) {